Skip to content

feat: v0.13.0 pre#122

Merged
phernandez merged 31 commits intomainfrom
v0.13.0-pre
Jun 3, 2025
Merged

feat: v0.13.0 pre#122
phernandez merged 31 commits intomainfrom
v0.13.0-pre

Conversation

@phernandez
Copy link
Copy Markdown
Member

🚀 Basic Memory v0.13.0 - Multi-Project Knowledge Management System

This PR introduces Basic Memory v0.13.0, a major release that transforms Basic Memory into a comprehensive multi-project knowledge management system. This release delivers fluid project switching, advanced note editing, robust file management, and production-ready features while maintaining full backward compatibility.

🎯 Key Accomplishments

  • ✅ Complete Project Management System - Switch between projects instantly during conversations
  • ✅ Advanced Note Editing - Incremental editing with append, prepend, find/replace, and section operations
  • ✅ Smart File Management - Full move operations with database consistency and rollback protection
  • ✅ Enhanced Search Capabilities - Frontmatter tags now searchable, improved content discovery
  • ✅ Production Features - OAuth authentication, development builds, comprehensive testing

🆕 Major Features

  1. Multi-Project Management 🎯
  • Instant Project Switching: Change project context mid-conversation without restart
  • Project-Specific Operations: All MCP tools work within the currently active project
  • Session Context: Maintains active project state throughout conversations
  • Project Discovery: List, create, delete, and manage projects dynamically
  1. Advanced Note Editing ✏️
  • Incremental Operations: Append, prepend, find/replace, and section replacement
  • Smart Validation: Occurrence counting and helpful error messages
  • Frontmatter-Aware: Intelligent handling of YAML metadata during edits
  • Project Context: Operates within the active project seamlessly
  1. Smart File Management 📁
  • Database Consistency: Automatic updates to file paths, permalinks, and checksums
  • Search Reindexing: Maintains search functionality after file operations
  • Rollback Protection: Comprehensive error handling and state recovery
  • Directory Management: Automatic folder creation and organization
  1. Enhanced Search & Discovery 🔍
  • Frontmatter Tag Search: Search content by YAML frontmatter tags
  • Improved Content Discovery: Better search ranking and relevance
  • Project-Scoped Search: Search within specific project contexts
  • Directory Browsing: Navigate and explore project structure

🔧 Technical Improvements

Database Architecture

  • Unified Database: Single app-level database for better performance
  • Project Isolation: Logical separation of project data with shared infrastructure
  • Schema Updates: Enhanced search index for frontmatter support
  • Migration Support: Seamless upgrades from previous versions

Development Workflow

  • Development Builds: Automatic publishing of development versions to PyPI
  • CI/CD Pipeline: Enhanced GitHub Actions for testing and releases
  • Code Quality: Comprehensive linting, type checking, and formatting
  • Documentation: Updated guides and comprehensive testing documentation

🔄 Migration & Compatibility

  • ✅ Full Backward Compatibility: Existing setups continue to work without changes
  • ✅ Automatic Migration: Database schema updates handled automatically
  • ✅ Configuration Preservation: All existing configurations remain intact
  • ✅ Data Safety: No data loss during upgrade process

📦 Installation

For Development/Beta Testing:
uv tool install basic-memory --pre --force-reinstall

For Stable Release (when available):
uv tool install basic-memory


Note: This PR includes comprehensive integration tests, documentation updates, and maintains 100% backward compatibility. All existing Basic Memory installations will seamlessly upgrade to the new multi-project capabilities.

phernandez and others added 30 commits April 17, 2025 10:17
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
…ding slash

Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Fixes issue #118 where YAML frontmatter tags were incorrectly formatted
with hash prefixes and improper indentation.

Changes:
- Remove f"#{tag}" prefix formatting in write_note.py line 75
- Update all test expectations to match proper YAML format
- Tags now render as "- tag" instead of "- '#tag'"
- YAML indentation was already correct (2-space)

Before: tags:
        - '#basicmemory'

After:  tags:
        - basicmemory

The fix ensures Basic Memory generates standard YAML-compliant
tag formatting that works properly with other markdown processors
and knowledge management tools.

Resolves #118

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Update global config when --project flag is specified in CLI app callback
- Fix project info MCP resource to use active project from session
- Both sync and project info commands now respect --project flag
- Fixes issue #110: --project flag ignored in some commands

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Issue #107 (write_note fails to update existing notes) was already
fixed in commit 9bff1f7 which updated EntityParser to handle absolute
paths correctly. Comprehensive tests demonstrate the functionality works.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Resolves #52 (Phase 1), #110, #107, #118

- Add frontmatter tag search functionality (Issue #52 Phase 1)
  - Include entity tags from YAML frontmatter in FTS5 search index
  - Add robust tag extraction supporting multiple formats
  - Tags now searchable via regular text search queries

- Fix auth command test failures
  - Correct stdout/stderr expectations in test assertions
  - Auth errors properly written to stderr, not stdout

- Fix move note test failure from Issue #118 changes
  - Update test expectations for correct YAML tag format
  - Remove references to old '#' prefix format

- Add comprehensive test coverage
  - 8 new tests for frontmatter tag search functionality
  - Test tag extraction, indexing, and search behavior
  - Cover list format, string format, and edge cases

- Update project documentation
  - Mark Issues #52, #110, #107, #118 as completed in ISSUES.md
  - Add detailed FRONTMATTER_SEARCH.md implementation guide
  - Document Phase 1 completion and future Phase 2 plans

All v0.13.0 high priority issues and medium priority Issue #52 now resolved.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Fix entity_service.py to parse content frontmatter before permalink resolution
- Both create_entity() and update_entity() now respect user-specified permalinks
- Add comprehensive tests to verify custom permalink behavior for new and existing notes
- Update existing test expectations to match correct behavior

Fixes #93

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
- Add integration tests for move_note, list_directory, edit_note, and project_management MCP tools
- Fix FTS5 search syntax errors with special characters in titles
- Improve project management API error handling and response schemas
- Update test infrastructure with proper ConfigManager isolation
- Clean up old test directory structure and consolidate integration tests
- All 77 integration tests now passing with 2 skipped tests for set_default_project API

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
Signed-off-by: phernandez <paul@basicmachines.co>
@phernandez phernandez changed the title V0.13.0 pre feat: v0.13.0 pre Jun 3, 2025
@phernandez phernandez merged commit 6344861 into main Jun 3, 2025
8 of 9 checks passed
@phernandez phernandez deleted the v0.13.0-pre branch June 3, 2025 06:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant